<?php

/*
 * Page Lista de Relatos
 * @Autor: Andrés Ubilla - Inicial.cl
 */

class ListaRelatos extends TPage {

    const COMENTARIO = 0;
    const TOP_COMENTARISTAS = 1;

    public function onLoad($param) {
        parent::onLoad($param);
        if (!$this->IsPostBack) {
            $this->actualizarIntefaz();
        }
    }

    private function actualizarIntefaz() {
        $this->Page->Title = "Lista de Relatos - Diosas del Placer";
        $arr = $this->obtenerDatos();
        $this->iniciarControles($arr);
    }

    private function obtenerDatos() {
        try {
            $filtrado = false;
            $arg = Util::isNull($this->Request["a"], "-1");
            $id = Util::desencriptarUrl($arg, "id");

            if (!Util::isNullOrEmpty($id)) {
                if (is_numeric($id) && $id > 0) {
                    $oEscort = DDPEntity::getEscort($id);
                    $this->litDiosa->Text = " de " . $oEscort->getNombre();
                    $this->txtIdEscort->Value = $id;
                    $filtrado = true;
                    $this->litEscribirRelato->Text = "<a href='index.php?page=Index.EscribirRelato&a=" . $arg . "' class='btn btn-inverse pull-right'><i class='icon-pencil icon-white'></i> Escribir mi relato</a>";
                } else {
                    $this->litDiosa->Text = " de nuestras Diosas";
                    $this->txtIdEscort->Value = -1;
                }
            } else {
                $this->txtIdEscort->Value = -1;
            }

            $oComentarioBLL = new ComentarioBLL();
            if ($filtrado) {
                $this->setViewState("ID", $id);
                $oComentario = new Comentario();
                $oComentario->setIdRegistro($id);
                $oComentario->setIdTipoComentario(Tipo_comentario::RELATO);
                $arr[self::COMENTARIO] = $oComentarioBLL->listarPorEscort($oComentario, 0, 5);
            } else {
                $arr[self::COMENTARIO] = $oComentarioBLL->listarUltimos();
            }
            $arr[self::TOP_COMENTARISTAS] = $oComentarioBLL->listarTopComentaristas();

            return $arr;
        } catch (Exception $e) {
            SendMail::enviarException("Home.ListarRelatos", $e->getMessage());
        }
    }

    private function iniciarControles($arr) {
        if (count($arr) > 0) {
            $this->iniciarControlesComentarios($arr[self::COMENTARIO]);
            $this->iniciarControlesTopComentaristas($arr[self::TOP_COMENTARISTAS]);
        }
    }

    private function iniciarControlesComentarios($arr) {
        $template = "<li class='li-side'>
                        <img class='user-ul-side' <img src='{#IMG}' alt='' />
                        <span class='fecha-ul-side'>{#FECHA_EXTENDIDA}</span>
                        <span class='sidebar-post'><a href='{#LINK}'>{#TITULO}</a><br>
                            <a class='linkSide' href='{#LINK}' title='Seguir leyendo...'>{#MENSAJE} <i class='icon-share-alt icon-white'></i></a>
                        </span>
                    </li>";
        $templateAux = "";
        $html = "";
        $fecha = "";
        $path = $this->Page->Theme->BaseUrl . "/images/avatar/";
        if (count($arr) > 0) {
            $this->holderUltimosComentarios->Visible = true;
            foreach ($arr as $oComentario) {
                $titulo = "";
                $link = "";
                $tipo = $oComentario->getIdTipoComentario();

                switch ($tipo) {
                    case Tipo_comentario::ESCORT:
                        $titulo = $oComentario->getRegistro();
                        $link = "Perfil";
                        break;
                    case Tipo_comentario::ENTREVISTA:
                        $titulo = $oComentario->getRegistro();
                        $link = "Entrevista";
                        break;
                    case Tipo_comentario::NOTICIA:
                        $titulo = $oComentario->getRegistro();
                        $link = "Noticia";
                        break;
                    case Tipo_comentario::RELATO:
                        $titulo = $oComentario->getRegistro();
                        $link = "Relato";
                        break;
                    case Tipo_comentario::CONCURSO:
                        $titulo = $oComentario->getRegistro();
                        $link = "Concurso";
                        break;
                    default:
                        break;
                }
                $templateAux = $template;
                $templateAux = str_replace("{#IMG}", $path . (Util::isNullOrEmpty($oComentario->getRutaAvatar()) ? "dios.jpg" : $oComentario->getRutaAvatar()), $templateAux);
                $templateAux = str_replace("{#FECHA_EXTENDIDA}", Util::obtenerFechaExtendida($oComentario->getFecha()), $templateAux);
                $templateAux = str_replace("{#TITULO}", $titulo, $templateAux);
                $comentario = Util::reemplazarTextoPorEmoticon($oComentario->getMensaje());
                if (strlen($comentario) > 140) {
                    $comentario = Util::recortarTexto(strip_tags($comentario), 140);
                }
                $templateAux = str_replace("{#MENSAJE}", $comentario, $templateAux);
                $templateAux = str_replace("{#LINK}", "index.php?page=Index." . $link . "&a=" . Util::encriptarUrl(array("id" => $oComentario->getIdRegistro())), $templateAux);

                $html .= $templateAux;
            }
        } else {
            $this->holderUltimosComentarios->Visible = false;
        }
        $this->litUltimosComentarios->Text = $html;
    }

    private function iniciarControlesTopComentaristas($arr) {
        $html = "";
        $path = $this->Page->Theme->BaseUrl . "/images/avatar/";
        $aux = "";
        $link = "";
        foreach ($arr as $value) {
            $link = "index.php?page=Index.ViewUsuario&a=" . Util::encriptarUrl(array("id" => $value->getIdUsuarioOrigen()));
            $aux = $value->getUsuario() . ": " . $value->getCantidad() . " comentario(s)";
            $html .= "<a href=\"" . $link . "\" title=\"" . $aux . "\"><img class=\"imgComentaristas\" src=\"" . $path . $value->getRutaAvatar() . "\"></a>";
        }
        $this->litTopComentaristas->Text = $html;
    }

}

?>
